function besttau=CH(tau,y,Row,Column,id) 

levR{1}=1/3*ones(1,3);
levC{1}=1/3*ones(1,3);

n=length(Row);
r=length(tau);
all=cell(1,r);
for q=1:r
    t=tau(q);
    for g=1:n
        ExpPayoffR=levR{1}*Row{g}';
        [~,ind]=max(ExpPayoffR);
        levR{2}=zeros(1,3);
        levR{2}(ind)=1;
        ExpPayoffC=levC{1}*Column{g};
        [~,ind]=max(ExpPayoffC);
        levC{2}=zeros(1,3);
        levC{2}(ind)=1;
        
        for k=2:7
            w=poisspdf(0:k-1,t)/sum(poisspdf(0:k-1,t));
            
            mixR=w(1).*levC{1};
            for j=2:k
                mixR=mixR+w(j)*levC{j};
            end
            
            ExpPayoffR=mixR*Row{g}';
            [~,ind]=max(ExpPayoffR);
            levR{k+1}=zeros(1,3);
            levR{k+1}(ind)=1;
            
            mixC=w(1).*levR{1};
            for j=2:k
                mixC=mixC+w(j)*levR{j};
            end
            
            ExpPayoffC=mixC*Column{g};
            [~,ind]=max(ExpPayoffC);
            levC{k+1}=zeros(1,3);
            levC{k+1}(ind)=1;
        end
        all{q}(g,:)=poisspdf(0,t)*levR{1};
        for k=1:7
            all{q}(g,:)=all{q}(g,:)+poisspdf(k,t)*levR{k+1};
        end
    end
end

m=length(y);
Err=zeros(1,r);
for q=1:r
    err=zeros(m,1);
    for i=1:m
        err(i)=-log(all{q}(id(i),str2double(y(i))));
    end
    Err(q)=mean(err);
end

besttau=find(Err==min(Err));